<?php
// 系统测试页面
require_once 'config.php';

$tests = [];
$allPassed = true;

// 测试1: PHP版本检查
$phpVersion = phpversion();
$tests['PHP版本'] = [
    'status' => version_compare($phpVersion, '7.0.0', '>='),
    'message' => "当前版本: $phpVersion " . (version_compare($phpVersion, '7.0.0', '>=') ? '✅' : '❌ 需要7.0+')
];

// 测试2: 目录权限检查
$tests['数据目录'] = [
    'status' => is_dir(DATA_DIR) && is_writable(DATA_DIR),
    'message' => is_dir(DATA_DIR) ? (is_writable(DATA_DIR) ? '✅ 可写' : '❌ 不可写') : '❌ 不存在'
];

$tests['照片目录'] = [
    'status' => is_dir(PHOTO_DIR) && is_writable(PHOTO_DIR),
    'message' => is_dir(PHOTO_DIR) ? (is_writable(PHOTO_DIR) ? '✅ 可写' : '❌ 不可写') : '❌ 不存在'
];

// 测试3: 必需函数检查
$requiredFunctions = ['json_encode', 'json_decode', 'file_get_contents', 'file_put_contents', 'base64_decode'];
foreach ($requiredFunctions as $func) {
    $tests["函数 $func"] = [
        'status' => function_exists($func),
        'message' => function_exists($func) ? '✅ 可用' : '❌ 不可用'
    ];
}

// 测试4: HTTPS检查
$isHttps = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443;
$tests['HTTPS连接'] = [
    'status' => $isHttps,
    'message' => $isHttps ? '✅ 安全连接' : '⚠️ 非安全连接（GPS和摄像头功能可能无法使用）'
];

// 测试5: 文件存在性检查
$requiredFiles = ['index.php', 'save_data.php', 'admin.php', 'config.php'];
foreach ($requiredFiles as $file) {
    $tests["文件 $file"] = [
        'status' => file_exists($file),
        'message' => file_exists($file) ? '✅ 存在' : '❌ 缺失'
    ];
}

// 计算总体状态
foreach ($tests as $test) {
    if (!$test['status']) {
        $allPassed = false;
        break;
    }
}
?>

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>系统测试 - 访客数据收集系统</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
            background-color: #f5f5f5;
        }
        .container {
            background: white;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        .header {
            text-align: center;
            margin-bottom: 30px;
        }
        .status-overall {
            text-align: center;
            padding: 20px;
            border-radius: 10px;
            margin-bottom: 30px;
            font-size: 1.2em;
            font-weight: bold;
        }
        .status-pass {
            background-color: #d4edda;
            color: #155724;
            border: 1px solid #c3e6cb;
        }
        .status-fail {
            background-color: #f8d7da;
            color: #721c24;
            border: 1px solid #f5c6cb;
        }
        .test-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 15px;
            margin-bottom: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            background-color: #f8f9fa;
        }
        .test-name {
            font-weight: bold;
        }
        .test-result {
            font-family: monospace;
        }
        .actions {
            margin-top: 30px;
            text-align: center;
        }
        .btn {
            display: inline-block;
            padding: 12px 24px;
            margin: 5px;
            background-color: #007bff;
            color: white;
            text-decoration: none;
            border-radius: 5px;
            border: none;
            cursor: pointer;
        }
        .btn:hover {
            background-color: #0056b3;
        }
        .btn-success {
            background-color: #28a745;
        }
        .btn-success:hover {
            background-color: #218838;
        }
        .info-box {
            background-color: #e9ecef;
            padding: 20px;
            border-radius: 5px;
            margin-top: 20px;
        }
        .info-box h3 {
            margin-top: 0;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <h1>🔧 系统测试</h1>
            <p>检查访客数据收集系统的运行环境</p>
        </div>

        <div class="status-overall <?php echo $allPassed ? 'status-pass' : 'status-fail'; ?>">
            <?php if ($allPassed): ?>
                ✅ 系统检查通过，可以正常使用！
            <?php else: ?>
                ❌ 系统检查发现问题，请修复后再使用
            <?php endif; ?>
        </div>

        <h2>📋 详细检查结果</h2>
        
        <?php foreach ($tests as $testName => $testResult): ?>
            <div class="test-item">
                <div class="test-name"><?php echo htmlspecialchars($testName); ?></div>
                <div class="test-result"><?php echo $testResult['message']; ?></div>
            </div>
        <?php endforeach; ?>

        <div class="actions">
            <?php if ($allPassed): ?>
                <a href="index.php" class="btn btn-success">开始使用系统</a>
                <a href="admin.php" class="btn">管理后台</a>
            <?php else: ?>
                <button onclick="location.reload()" class="btn">重新测试</button>
            <?php endif; ?>
        </div>

        <div class="info-box">
            <h3>📝 使用说明</h3>
            <ul>
                <li><strong>index.php</strong> - 访客数据收集页面</li>
                <li><strong>admin.php</strong> - 管理员后台（默认密码: admin123）</li>
                <li><strong>save_data.php</strong> - 数据保存接口</li>
                <li><strong>config.php</strong> - 系统配置文件</li>
            </ul>
            
            <h3>⚠️ 重要提醒</h3>
            <ul>
                <li>GPS和摄像头功能需要HTTPS连接</li>
                <li>请修改config.php中的默认管理员密码</li>
                <li>确保遵守当地隐私法规</li>
                <li>定期备份visitor_data目录中的数据</li>
            </ul>
        </div>
    </div>
</body>
</html>